package com.ideabove.heart.util;

import java.util.ArrayList;
import java.util.List;

import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;

public class StringUtil {
	public Paint mPaint;
	private int mAvailableWidth = 0;
	public int mLineHeight;
	public int textBoxHeight;
    private List<String> mCutStr = new ArrayList<String>();
	
	public StringUtil setTextInfo(String text, int textWidth, int textHeight, int lineHeight, Paint paint) {
        // 그릴 페인트 세팅
 
		mPaint = paint;
		mLineHeight = lineHeight;
        int mTextHeight = textHeight;
        
        
        if (textWidth > 0) {
            // 값 세팅
            mAvailableWidth = textWidth;
 
            mCutStr.clear();
            int end = 0;
            do {
                // 글자가 width 보다 넘어가는지 체크
                end = mPaint.breakText(text, true, mAvailableWidth, null);
                if (end > 0) {
                    // 자른 문자열을 문자열 배열에 담아 놓는다.
                    mCutStr.add(text.substring(0, end));
                    // 넘어간 글자 모두 잘라 다음에 사용하도록 세팅
                    text = text.substring(end);                    
                    // 다음라인 높이 지정
                    if (textHeight == 0) mTextHeight += mLineHeight;
                }
            } while (end > 0);
        }
        
        textBoxHeight = mLineHeight * mCutStr.size();
//        mTextHeight += getPaddingTop() + getPaddingBottom();
        return this;
    }
	
	 public void drawString(Canvas canvas, int left, int top) {
	        // 글자 높이 지정
	        float height = top + mLineHeight;
	        for (String text : mCutStr) {
	            // 캔버스에 라인 높이 만큰 글자 그리기	        	
	            canvas.drawText(text, left, height, mPaint);	            
	            height += mLineHeight;
	        }
	    }
}
